package com.hsj.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hsj.domain.Book;
import com.hsj.service.IBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 *   如果 controller层 返回的结果 虽然都是json 但是没有统一格式， 前端无法判断 数据是因为没有查到而失败，还是因为查询异常而失败
 *   可以定义一个 类，让所有给前端返回的数据都用这个R，达到统一。 前后端数据协议
 */

@RestController
@RequestMapping("/books")
public class BookController {


    @Autowired
    private IBookService ibookService;

    @GetMapping
    public List<Book> getAll() {
        return ibookService.list();
    }

    @PostMapping
    public Boolean save(@RequestBody  Book book){   //如果提交的是 一个json串， 用@RequestBody 做映射
        return ibookService.save(book);
    }

    @PostMapping("/form")
    public Boolean save1(@ModelAttribute Book book){  //如果提交的是一个表单 用@ModelAttribute 做映射
        return ibookService.save(book);
    }
    @PutMapping
    public Boolean update(@RequestBody  Book book){
        return ibookService.updateById(book);
    }

    @DeleteMapping("{id}")
    public Boolean delete(@PathVariable  Integer id){
        return  ibookService.removeById(id);
    }

    @GetMapping("{id}")
    public Book getById(@PathVariable Integer id){
        return  ibookService.getById(id);
    }

    @GetMapping("{currentPage}/{pageSize}")
    public IPage<Book> getPage(@PathVariable int currentPage,@PathVariable int pageSize){
//        return ibookService.getPage(currentPage,pageSize);
    return null;
    }

}
